package com.hyt.it.ogt.ykcj.domain.grade;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hyt.it.ogt.ykcj.common.annotation.Excel;
import com.hyt.it.ogt.ykcj.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 考生考试科目成绩信息对象 examinee_subject_grade_info
 *
 * @author admin
 * @date 2021-06-29
 */
public class ExamineeSubjectGradeInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 考生科目成绩id
     */
    private String subjectGradeId;
    /**
     * 考试id
     */
    private String examId;

    /**
     * 考生成绩id
     */
    @Excel(name = "考生成绩id")
    private String gradeId;

    /**
     * 考试科目id
     */
    @Excel(name = "考试科目id")
    private String subjectId;

    /**
     * 考号
     */
    @Excel(name = "考号")
    private String examineeNo;

    /**
     * 成绩分数
     */
    @Excel(name = "成绩分数")
    private BigDecimal examineeScore;

    /**
     * 成绩类型
     */
    @Excel(name = "成绩类型")
    private String gradeType;

    /**
     * 科目通过年份
     */
    @Excel(name = "科目通过年份")
    private String passYear;

    /**
     * 科目通过标记
     */
    @Excel(name = "科目通过标记")
    private String passFlag;

    /**
     * 是否已归档,默认否。Y-已归档，N-未归档
     */
    @Excel(name = "是否已归档,默认否。Y-已归档，N-未归档")
    private String archivedStatus;

    /**
     * 批次号
     */
    @Excel(name = "批次号")
    private Integer batchNo;

    /**
     * 归档时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "归档时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date archivedDate;

    /**
     * 违纪类别码
     */
    @Excel(name = "违纪类别码")
    private String violationTypeCode;

    /**
     * 违纪处理结果码
     */
    @Excel(name = "违纪处理结果码")
    private String violationResultCode;

    /**
     * 成绩有效期开始时间
     */
    @Excel(name = "成绩有效期开始时间")
    private String validPeriodStartDate;

    /**
     * 成绩有效期结束时间
     */
    @Excel(name = "成绩有效期结束时间")
    private String validPeriodEndDate;

    /**
     * 失效日期
     */
    @Excel(name = "失效日期")
    private String invalidDate;

    /**
     * 预留字段1
     */
    @Excel(name = "预留字段1")
    private String reserveField1;

    /**
     * 预留字段2
     */
    @Excel(name = "预留字段2")
    private String reserveField2;

    /**
     * 预留字段3
     */
    @Excel(name = "预留字段3")
    private String reserveField3;

    public void setSubjectGradeId(String subjectGradeId) {
        this.subjectGradeId = subjectGradeId;
    }

    public String getExamId() {
        return examId;
    }

    public void setExamId(String examId) {
        this.examId = examId;
    }

    public String getSubjectGradeId() {
        return subjectGradeId;
    }

    public void setGradeId(String gradeId) {
        this.gradeId = gradeId;
    }

    public String getGradeId() {
        return gradeId;
    }

    public void setSubjectId(String subjectId) {
        this.subjectId = subjectId;
    }

    @NotBlank(message = "考试科目不能为空")
    public String getSubjectId() {
        return subjectId;
    }

    public void setExamineeNo(String examineeNo) {
        this.examineeNo = examineeNo;
    }

    public String getExamineeNo() {
        return examineeNo;
    }

    public void setExamineeScore(BigDecimal examineeScore) {
        this.examineeScore = examineeScore;
    }

    @NotNull(message = "考试成绩不能为空")
    public BigDecimal getExamineeScore() {
        return examineeScore;
    }

    public void setGradeType(String gradeType) {
        this.gradeType = gradeType;
    }

    public String getGradeType() {
        return gradeType;
    }

    public void setPassYear(String passYear) {
        this.passYear = passYear;
    }

    public String getPassYear() {
        return passYear;
    }

    public void setPassFlag(String passFlag) {
        this.passFlag = passFlag;
    }

    public String getPassFlag() {
        return passFlag;
    }

    public void setArchivedStatus(String archivedStatus) {
        this.archivedStatus = archivedStatus;
    }

    public String getArchivedStatus() {
        return archivedStatus;
    }

    public void setBatchNo(Integer batchNo) {
        this.batchNo = batchNo;
    }

    public Integer getBatchNo() {
        return batchNo;
    }

    public void setArchivedDate(Date archivedDate) {
        this.archivedDate = archivedDate;
    }

    public Date getArchivedDate() {
        return archivedDate;
    }

    public void setViolationTypeCode(String violationTypeCode) {
        this.violationTypeCode = violationTypeCode;
    }

    public String getViolationTypeCode() {
        return violationTypeCode;
    }

    public void setViolationResultCode(String violationResultCode) {
        this.violationResultCode = violationResultCode;
    }

    public String getViolationResultCode() {
        return violationResultCode;
    }

    public void setValidPeriodStartDate(String validPeriodStartDate) {
        this.validPeriodStartDate = validPeriodStartDate;
    }

    public String getValidPeriodStartDate() {
        return validPeriodStartDate;
    }

    public void setValidPeriodEndDate(String validPeriodEndDate) {
        this.validPeriodEndDate = validPeriodEndDate;
    }

    public String getValidPeriodEndDate() {
        return validPeriodEndDate;
    }

    public String getInvalidDate() {
        return invalidDate;
    }

    public void setInvalidDate(String invalidDate) {
        this.invalidDate = invalidDate;
    }

    public void setReserveField1(String reserveField1) {
        this.reserveField1 = reserveField1;
    }

    public String getReserveField1() {
        return reserveField1;
    }

    public void setReserveField2(String reserveField2) {
        this.reserveField2 = reserveField2;
    }

    public String getReserveField2() {
        return reserveField2;
    }

    public void setReserveField3(String reserveField3) {
        this.reserveField3 = reserveField3;
    }

    public String getReserveField3() {
        return reserveField3;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("subjectGradeId", getSubjectGradeId())
                .append("gradeId", getGradeId())
                .append("subjectId", getSubjectId())
                .append("examineeNo", getExamineeNo())
                .append("examineeScore", getExamineeScore())
                .append("gradeType", getGradeType())
                .append("passYear", getPassYear())
                .append("passFlag", getPassFlag())
                .append("archivedStatus", getArchivedStatus())
                .append("batchNo", getBatchNo())
                .append("archivedDate", getArchivedDate())
                .append("violationTypeCode", getViolationTypeCode())
                .append("violationResultCode", getViolationResultCode())
                .append("validPeriodStartDate", getValidPeriodStartDate())
                .append("validPeriodEndDate", getValidPeriodEndDate())
                .append("invalidData", getInvalidDate())
                .append("reserveField1", getReserveField1())
                .append("reserveField2", getReserveField2())
                .append("reserveField3", getReserveField3())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
